﻿namespace MetaProperties.Core
{
    using System;
    using System.Collections.Generic;

    /// <summary>
    /// Attribute which defines a set of filters on a MetaProperty.
    /// </summary>
    [AttributeUsage(AttributeTargets.Property)]
    public sealed class SetEventFilterAttribute : Attribute
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="SetEventFilterAttribute"/> class.
        /// </summary>
        /// <param name="filterTypes">The filter types.</param>
        public SetEventFilterAttribute(params Type[] filterTypes)
        {
            this.FilterTypes = filterTypes;
        }

        /// <summary>
        /// Gets the filter types.
        /// </summary>
        /// <value>The filter types.</value>
        public IEnumerable<Type> FilterTypes { get; private set; }
    }
}
